package com.j.lemon.learn.thread.lock;

import java.util.concurrent.CountDownLatch;

/**
 * @Author lijunjun
 * @Date 2019-04-18 14:29
 * @Description 计数器，线程控制，可以用于对资源的操作，资源的数量确定，其他多个线程操作完成后，再执行后面的逻辑，可以使用计数器。
 * 例子：做读取excel数据，然后使用多线程批量调用api，计数完成后（全部excel数据调用完成后），再进行后面的操作
 */
public class CountDownLatchDemo {
    private static CountDownLatch countDownLatch = new CountDownLatch(10);
    public static void main(String[] args) throws InterruptedException {
        for (int i = 0; i < 10; i++) {
            final int temp = i;
            new Thread(()->{
                System.out.println("开始报数："+temp);
                countDownLatch.countDown();
            },String.valueOf(i)).start();
        }
        countDownLatch.await();
        System.out.println("报数完毕，下班回家");
    }
}

